home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / WINPASCL / HANOI.PAS < prev    next >
Pascal/Delphi Source File  |  1990-08-28  |  731b  |  35 lines

  1. Program Hanoi( input, output );
  2.  
  3. var
  4.    ndiscs : integer;
  5.    pegs : array[1..3] of integer;
  6.  
  7. Procedure move( source, destn, spare : integer; n: integer );
  8. begin
  9.    if n > 1 then 
  10.       move( source, spare, destn, n-1 );
  11.  
  12.    pegs[source] := pegs[source] - 1;
  13.    pegs[destn] := pegs[destn] + 1;
  14.    writeln( pegs[1]:3, pegs[2]:3, pegs[3]:3 );
  15. {   writeln( 'Moving from', source:2, ' to', destn:2 ); }
  16.  
  17.    if n > 1 then 
  18.       move( spare, destn, source, n-1 );
  19. end;
  20.  
  21. Begin
  22.    write( 'How many discs? ' );
  23.    readln( ndiscs );
  24.    writeln;
  25.  
  26.    pegs[1] := ndiscs;
  27.    pegs[2] := 0;
  28.    pegs[3] := 0;
  29.  
  30.    writeln( pegs[1]:3, pegs[2]:3, pegs[3]:3 );
  31.    move( 1, 3, 2, ndiscs );
  32.    writeln( 'Done.' );
  33. End.
  34.  
  35.